import store from './store'
import post from './post'

// 该方法可判断登录状态 return userinfo || false
// opt.autoLogin 设置为true时 未登录状态下自动登录  
// opt.force 设置为true时 强制登录并更新缓存 #### userinfo是readonly的 暂去掉这个功能
// opt.data 登录或强制登录时的传参

function  tryLogin(opt) {
  // return post("/login",opt.data)
  return new Promise((res,rej)=>{
    post("/login",opt.data).then(data=>{
      
      if(data.ok == 1){
        delete(data.ok) 
        store("userinfo",data,{
          withLocalStorage : true,
          expireTime : 60 * 60,
          readonly : true,
        })
        res(data)
      }
      else{
        rej(data.tips || 'fail')
      }
    }).catch(()=>{
      rej('fail')
    })
  })
}

function login(opt) {
  // 
  if(!opt) opt = {}
  if(!opt.data) opt.data = {}
  if(store("userinfo")){
    //if( opt.force ) return tryLogin(data)
    return new Promise(res=>{
      res(store("userinfo"))
    })
  }
  else{
    //
    if(opt.autoLogin){
      return tryLogin(opt)
    }
    else return new Promise((res,rej)=>{
      rej('fail')
    })
  }
}

export default login
